﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using DAO;
using Domain;
using System.Collections.Generic;

public partial class AdminPublicaciones : System.Web.UI.Page
{
    private enum enum_dg_Publicidades
    { 
        id=0,
        logo = 1,
        descripcion = 2,
        estado = 3,
        link = 4,
        baja = 5
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (string.IsNullOrEmpty(Request.QueryString.ToString()) ||   // si no hay querystring
                !QueryStringHash.GetIntegrityCheck(Request.QueryString.ToString())) // o no cumple la verificacion del hash
            {
                Response.Redirect("~/naughty.htm");
                return;
            }

            cargarDatos();
        }
    }

    private void cargarDatos() {

        List<Publicacion> publicaciones = PublicacionDAO.Traer(null, null, Publicacion.enum_Publicacion_Estado.Publicada);
        var data = from p in publicaciones
                   select new { id = p.Id,
                                Logo = ResolveClientUrl(Utils.imageHandlerPath(p.Logo, false)),
                                Descripcion = p.Descripcion,
                                Estado = p.Estado.ToString(), 
                                EstadoId = p.Estado,
                                link =  Utils.SecureRedirect("AdminPublicacionData.aspx?id=" + p.Id)
                            };
        dg_Publicidades.DataSource = data;
        dg_Publicidades.DataBind();

        if (data.Count() > 0)
        {
            dg_Publicidades.Visible = true;
            lbl_nopublicidades.Visible = false;
        }
        else
        {
            dg_Publicidades.Visible = false;
            lbl_nopublicidades.Visible = true;
        }
    
    }
    protected void dg_Publicidades_ItemCommand(object source, DataGridCommandEventArgs e)
    {
        PublicacionDAO.AnularPublicacion(long.Parse(e.Item.Cells[(int)enum_dg_Publicidades.id].Text));
        cargarDatos();
    }
    protected void dg_Publicidades_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        { 
            LinkButton lb_link = (LinkButton) e.Item.Cells[(int) enum_dg_Publicidades.link].FindControl("lb_link");
            LinkButton lb_baja = (LinkButton) e.Item.Cells[(int) enum_dg_Publicidades.baja].FindControl("lb_baja");

            lb_link.PostBackUrl = DataBinder.Eval(e.Item.DataItem, "link").ToString();

            if (((Publicacion.enum_Publicacion_Estado)DataBinder.Eval(e.Item.DataItem, "EstadoId")) != Publicacion.enum_Publicacion_Estado.Publicada)
            {
                lb_baja.Enabled = false;
            }
        }
    }
}
